<?php

/**
 * Проверяет правильность заполнения поля строковым значением.
 *
 */
class Kernel_Validator_String extends Kernel_Validator_Abstract {

    /**
     * Минимальная длина строки.
     *
     * @var integer
     */
    public $min;

    /**
     * Максимальная длина строки.
     *
     * @var integer
     */
    public $max;

    /**
     * Проверяет правильность указанного значения
     *
     * @param   mixed   $value
     * @throws  Kernel_Validator_Exception
     */
    protected function _validate($value) {
        $length = strlen($value);
        if ($length < $this->min) {
            $this->_error(__('VALIDATION_ERROR_STRING_TOO_SHORT', $this->min));
        } elseif (!is_null($this->max) && $this->max < $length) {
            $this->_error(__('VALIDATION_ERROR_STRING_TOO_LONG', $this->max));
        }
    }
}
